package com.unknowpupil.design.relation;

/**
 * @Description: 实现关系（Implementation) <br/>
 * <p>
 *      接口之间也可以有与类之间关系类似的继承关系和依赖关系，
 * 但是接口和类之间还存在一种实现关系(Realization)，在这种关系中，
 * 类实现了接口，类中的操作实现了接口中所 声明的操作。
 *
 * 在UML中，类与接口之间的实现关系用带空心三角形的虚线来表示
 * </p>
 * @Author: <a> w10g </a>
 * @CreateDate: Create in 2020/4/24 14:12
 * @Classname: SchemaImplementation
 * @Version: 1.0
 */
public class SchemaImplementation {
    public interface Vehicle
    {
        public void move();
    }
    public class Ship implements Vehicle
    {
        @Override
        public void move()
        {
   // ……
        }
    }
    public class Car implements Vehicle
    {
        @Override
        public void move()
        {
   // ……
        }
    }
    /**
     * 关于关联，聚合，组合在实现上并没有显著区别，相区别他们只有通过判断关系双方之间的实际关系，
     * 如关系强弱、创建与销毁之间有无必要关联等。
     * 它们的强弱关系是没有异议的：依赖 < 关联 < 聚合 < 组合<泛化（继承）
     *
     * 实现方式区别：
     * 依赖关系：关系对象出现在局部变量或者方法的参数里，或者关系类的静态方法被调用
     * (2) 关联关系：关系对象出现在实例变量中
     * (3) 聚合关系:关系对象出现在实例变量中
     * (4) 合成关系：关系对象出现在实例变量中
     * (5) Generalization: extends
     * (6) 实现： implements
     */

}
